package com.zjcloud.jwgl.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zjcloud.common.annotation.Excel;
import com.zjcloud.common.core.domain.BaseEntity;

/**
 * 学科信息对象 sc_subject
 * 
 * @author zjcloud
 * @date 2024-12-19
 */
public class ScSubject extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 学科ID */
    private Long id;

    /** 学科编码 */
    @Excel(name = "学科编码")
    private String subjectCode;

    /** 学科名称 */
    @Excel(name = "学科名称")
    private String subjectName;

    /** 学科简称 */
    @Excel(name = "学科简称")
    private String shortName;

    /** 学科分类(MAIN主科 MINOR副科 ELECTIVE选修 ACTIVITY活动) */
    @Excel(name = "学科分类", readConverterExp = "MAIN=主科,MINOR=副科,ELECTIVE=选修,ACTIVITY=活动")
    private String subjectCategory;

    /** 适用学段(PRIMARY小学 MIDDLE中学 HIGH高中 UNIVERSITY大学 ALL全部) */
    @Excel(name = "适用学段", readConverterExp = "PRIMARY=小学,MIDDLE=中学,HIGH=高中,UNIVERSITY=大学,ALL=全部")
    private String educationLevel;

    /** 学科颜色(用于课表显示) */
    @Excel(name = "学科颜色")
    private String subjectColor;

    /** 每周标准课时 */
    @Excel(name = "每周标准课时")
    private Integer standardWeeklyPeriods;

    /** 单节课时长(分钟) */
    @Excel(name = "单节课时长")
    private Integer periodDuration;

    /** 是否需要连排(1是 0否) */
    @Excel(name = "是否需要连排", readConverterExp = "1=是,0=否")
    private String needConsecutive;

    /** 最大连排节数 */
    @Excel(name = "最大连排节数")
    private Integer maxConsecutive;

    /** 教室类型要求 */
    @Excel(name = "教室类型要求")
    private String classroomTypeRequired;

    /** 特殊设备要求 */
    @Excel(name = "特殊设备要求")
    private String equipmentRequired;

    /** 难度系数 */
    @Excel(name = "难度系数")
    private BigDecimal difficultyCoefficient;

    /** 重要程度(1-10) */
    @Excel(name = "重要程度")
    private Integer importance;

    /** 排序 */
    @Excel(name = "排序")
    private Integer sortOrder;

    /** 状态(1启用 0禁用) */
    @Excel(name = "状态", readConverterExp = "1=启用,0=禁用")
    private String status;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setSubjectCode(String subjectCode) 
    {
        this.subjectCode = subjectCode;
    }

    public String getSubjectCode() 
    {
        return subjectCode;
    }
    public void setSubjectName(String subjectName) 
    {
        this.subjectName = subjectName;
    }

    public String getSubjectName() 
    {
        return subjectName;
    }
    public void setShortName(String shortName) 
    {
        this.shortName = shortName;
    }

    public String getShortName() 
    {
        return shortName;
    }
    public void setSubjectCategory(String subjectCategory) 
    {
        this.subjectCategory = subjectCategory;
    }

    public String getSubjectCategory() 
    {
        return subjectCategory;
    }
    public void setEducationLevel(String educationLevel) 
    {
        this.educationLevel = educationLevel;
    }

    public String getEducationLevel() 
    {
        return educationLevel;
    }
    public void setSubjectColor(String subjectColor) 
    {
        this.subjectColor = subjectColor;
    }

    public String getSubjectColor() 
    {
        return subjectColor;
    }
    public void setStandardWeeklyPeriods(Integer standardWeeklyPeriods) 
    {
        this.standardWeeklyPeriods = standardWeeklyPeriods;
    }

    public Integer getStandardWeeklyPeriods() 
    {
        return standardWeeklyPeriods;
    }
    public void setPeriodDuration(Integer periodDuration) 
    {
        this.periodDuration = periodDuration;
    }

    public Integer getPeriodDuration() 
    {
        return periodDuration;
    }
    public void setNeedConsecutive(String needConsecutive) 
    {
        this.needConsecutive = needConsecutive;
    }

    public String getNeedConsecutive() 
    {
        return needConsecutive;
    }
    public void setMaxConsecutive(Integer maxConsecutive) 
    {
        this.maxConsecutive = maxConsecutive;
    }

    public Integer getMaxConsecutive() 
    {
        return maxConsecutive;
    }
    public void setClassroomTypeRequired(String classroomTypeRequired) 
    {
        this.classroomTypeRequired = classroomTypeRequired;
    }

    public String getClassroomTypeRequired() 
    {
        return classroomTypeRequired;
    }
    public void setEquipmentRequired(String equipmentRequired) 
    {
        this.equipmentRequired = equipmentRequired;
    }

    public String getEquipmentRequired() 
    {
        return equipmentRequired;
    }
    public void setDifficultyCoefficient(BigDecimal difficultyCoefficient) 
    {
        this.difficultyCoefficient = difficultyCoefficient;
    }

    public BigDecimal getDifficultyCoefficient() 
    {
        return difficultyCoefficient;
    }
    public void setImportance(Integer importance) 
    {
        this.importance = importance;
    }

    public Integer getImportance() 
    {
        return importance;
    }
    public void setSortOrder(Integer sortOrder) 
    {
        this.sortOrder = sortOrder;
    }

    public Integer getSortOrder() 
    {
        return sortOrder;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("subjectCode", getSubjectCode())
            .append("subjectName", getSubjectName())
            .append("shortName", getShortName())
            .append("subjectCategory", getSubjectCategory())
            .append("educationLevel", getEducationLevel())
            .append("subjectColor", getSubjectColor())
            .append("standardWeeklyPeriods", getStandardWeeklyPeriods())
            .append("periodDuration", getPeriodDuration())
            .append("needConsecutive", getNeedConsecutive())
            .append("maxConsecutive", getMaxConsecutive())
            .append("classroomTypeRequired", getClassroomTypeRequired())
            .append("equipmentRequired", getEquipmentRequired())
            .append("difficultyCoefficient", getDifficultyCoefficient())
            .append("importance", getImportance())
            .append("sortOrder", getSortOrder())
            .append("status", getStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}